#!/bin/bash

# AI Meeting Minutes 本地启动脚本

set -e

echo "🚀 启动 AI Meeting Minutes 系统（本地版）..."

# 检查Python环境
if ! command -v python3 &> /dev/null; then
    echo "❌ Python3 未安装，请先安装 Python 3.11+"
    exit 1
fi

# 检查Node.js环境
if ! command -v node &> /dev/null; then
    echo "❌ Node.js 未安装，请先安装 Node.js 18+"
    exit 1
fi

# 检查必要的系统依赖
echo "📦 检查系统依赖..."

# 检查ffmpeg
if ! command -v ffmpeg &> /dev/null; then
    echo "⚠️  ffmpeg 未安装，可能影响音频处理"
    echo "   Ubuntu/Debian: sudo apt-get install ffmpeg"
    echo "   CentOS/RHEL: sudo yum install ffmpeg"
    echo "   macOS: brew install ffmpeg"
fi

# 创建必要的目录
mkdir -p uploads models logs

echo "📦 启动后端服务..."

# 启动后端
cd backend

# 安装Python依赖
if [ ! -d "venv" ]; then
    echo "🐍 创建Python虚拟环境..."
    python3 -m venv venv
fi

echo "📦 激活虚拟环境..."
source venv/bin/activate

echo "📦 安装Python依赖..."
pip install -r simple_requirements.txt

# 确保python-dotenv已安装
echo "📦 检查并安装python-dotenv..."
pip install python-dotenv

echo "🤖 启动改进版后端服务..."
echo "📋 从.env文件读取配置..."
# 激活conda环境并启动改进版本
conda activate py310
nohup python improved_main.py > ../logs/backend.log 2>&1 &
BACKEND_PID=$!
echo "后端服务 PID: $BACKEND_PID"
echo "后端日志: logs/backend.log"

# 等待后端启动
echo "⏳ 等待后端服务启动..."
sleep 5

cd ..

echo "📦 启动前端服务..."

# 启动前端
cd frontend

# 安装Node.js依赖
if [ ! -d "node_modules" ]; then
    echo "📦 安装前端依赖..."
    npm install
fi

echo "🚀 启动前端开发服务器..."
# 使用nohup在后台启动
nohup npm run dev > ../logs/frontend.log 2>&1 &
FRONTEND_PID=$!
echo "前端服务 PID: $FRONTEND_PID"
echo "前端日志: logs/frontend.log"

cd ..

echo "✅ 服务启动完成！"
echo ""
echo "🌐 访问地址："
echo "   前端应用: http://localhost:3000"
echo "   后端API:  http://localhost:8000"
echo "   API文档:  http://localhost:8000/docs"
echo "   健康检查: http://localhost:8000/api/v1/health"
echo ""
echo "📝 使用说明："
echo "   1. 配置前端 .env 文件中的 VITE_KIMI_API_KEY（可选）"
echo "   2. 首次启动会下载Whisper模型，请耐心等待"
echo "   3. 访问前端应用开始使用"
echo ""
echo "📊 查看日志:"
echo "   查看后端日志: tail -f logs/backend.log"
echo "   查看前端日志: tail -f logs/frontend.log"
echo ""
echo "🔄 停止服务:"
echo "   停止所有服务: ./stop_local.sh"
echo ""
echo "💡 提示："
echo "   - 首次启动需要下载模型，请耐心等待"
echo "   - 如果有GPU，会自动使用GPU加速"
echo "   - 模型会缓存在 ./models 目录中"

# 保存PID到文件
echo $BACKEND_PID > .backend.pid
echo $FRONTEND_PID > .frontend.pid

echo "🎉 系统已完全启动！"